การใช้งาน [CREATE VIEW] ของ Amazon Athena
สวัสดีครับ ผมต้า วันนี้เราจะมาแนะนำการ CREATE VIEW ของ Amazon Athena กันครับ
Views คือ?
ในส่วนของ Data จะมีส่วนที่เรียกว่า Tables
และ Views
อย่างที่เราทราบกัน Tables
คือตารางข้อมูลที่ประกอบด้วย rows และ columns ใช้สำหรับการจัดระเบียบข้อมูล
ส่วน Views
คือ virtual/logical table เป็นตารางข้อมูลที่เราดึงข้อมูลจาก Tables
ออกมาให้ดูได้ง่ายขึ้น เป็นข้อมูลที่เราอยากจะดู(View)นั่นเอง
CREATE VIEW
โครงสร้างการเขียน
โค้ดด้านล่างนี้คือโครงสร้างการเขียนที่ใช้การสร้าง View ครับ
CREATE [ OR REPLACE ] VIEW view_name AS query
ตัวอย่าง CREATE VIEW
เหมือน SQL ทั่วไปครับ
CREATE VIEW test AS SELECT orderkey, orderstatus, totalprice / 2 AS half FROM orders
REPLACE VIEW worker AS SELECT ID, name, salary /0.35 AS salaryUSD FROM orders
หรือเราสามารถใช้คำสั่ง CREATE OR REPLACE VIEW
เพื่อทำการอัพเดท View ที่มีอยู่ หรือสร้างขึ้นใหม่ถ้าไม่มีได้
โดยหากอยากทราบรายละเอียดเพิ่มเติมเกี่ยวกับ CREATE VIEW สามารถดูได้ที่ลิ้งค์ด้านล่าง
ลองสร้าง View ดูจริงๆ
วิธีการสร้าง View จาก Athena console มีอยู่ 2 วิธีครับ
1.วิธี Run DDL ของ CREATE VIEW
เราจะ RUN โค้ดตามที่เห็นในภาพ เพื่อสร้าง View
2.วิธี CREATE VIEW จากผลลัพท์ของการ Run query
วิธีนี้คือวิธีที่เราจะนำผลลัพท์ที่ได้จาก query มาทำใหม่ขึ้นมาเป็น View ครับ โดยผมจะใช้คำสั่ง Select เพื่อดึงข้อมูลออกมาโชว์
จากนั้นเลือก Create
และ View from query
แล้วจะขึ้นหน้าต่างให้เราสร้าง View จากผลลัพท์ใน query ได้ครับ
โดยเราสามารถสังเกตผลลัพท์ที่เราสร้างขึ้นได้ตรง Views ขวาล่าง
เกร็ดความรู้อื่นๆ
เราสามารถสร้าง View จาก View ได้
เหมือนกับ Table ทั่วไป เราสามารถสร้าง View จาก View ได้ และทำงาน query ได้ปกติ
Glue Data Catalog จากมองเห็นเป็นยังไง
ในตาราง Tables นั้น จะไม่มีข้อมูลในส่วน Location และส่วน Classification จะขึ้นว่า Unknown
ครับ
และเมื่อเราเข้าไปดูรายละเอียดจะเป็นตามภาพด้านล่างนี้ ในส่วน Comment จะเขียนว่า Presto View
ซึ่งทำให้เราทราบได้ว่า Glue ได้ทำการเข้าใจว่าสิ่งที่เราทำเป็นการ Presto
ถ้าเรากำหนด Location ของ job ใน Glue จะเป็นยังไง?
เราสามารถกำหนด Location ของ job ได้ แต่เนื่องจาก Classification เป็น Unknown
ทำให้จะเกิด error ขึ้น เมื่อทำการ Run
แถมท้าย
เป็นยังไงกันบ้างครับ กับการ CREATE VIEW ของ Amazon Athena ส่วนตัวผมคิดว่ามันเป็นอะไรที่ค่อนข้างสะดวกมากที่เราสามารถนำผลลัพท์ใน query มาทำเป็น view ได้ เพราะจะทำให้เราได้เห็นก่อนว่าจะมีข้อมูลอะไรที่ถูกใส่ลงไป ทำให้ลด human error ลงไปได้เยอะครับ
การอัพเดท data ของ data lake จำเป็นต้องใช้เวลา หากเราสามารถอ้างอิง View จากแอปพลิเคชันได้ ทำให้เราสามารถ maintenance ได้ทันทีจากข้อมูลการ swap View ที่อ้างอิงจาก Table แล้วนั่นก็ทำให้ เราสามารถ clone, EL job หรือ เพิ่ม partition ได้โดยไม่ต้องกังวลเกี่ยวกับเวลาที่ต้องใช้ในการอัปเดต tables